package com.youlai.boot.system.model.form;

import java.io.Serial;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.time.LocalDate;

import jakarta.validation.constraints.*;

/**
 * 大盘底表表单对象
 *
 * @author xiheforever
 * @since 2025-05-11 22:39
 */
@Getter
@Setter
@Schema(description = "大盘底表表单对象")
public class BigcapForm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "主键ID")
    @NotNull(message = "主键ID不能为空")
    private Integer id;

    @Schema(description = "日期")
    @NotNull(message = "日期不能为空")
    private LocalDate date;

    @Schema(description = "流量指数")
    private Long trafficIndex;

    @Schema(description = "流量指数同比(年)")
    @Size(max=10, message="流量指数同比(年)长度不能超过10个字符")
    private String trafficIndexYoy;

    @Schema(description = "访客指数")
    private Long visitorIndex;

    @Schema(description = "访客指数同比(年)")
    @Size(max=10, message="访客指数同比(年)长度不能超过10个字符")
    private String visitorIndexYoy;

    @Schema(description = "关注人数")
    private Integer followers;

    @Schema(description = "关注人数同比(年)")
    @Size(max=10, message="关注人数同比(年)长度不能超过10个字符")
    private String followersYoy;

    @Schema(description = "加购人数")
    private Integer addToCart;

    @Schema(description = "加购人数同比(年)")
    @Size(max=10, message="加购人数同比(年)长度不能超过10个字符")
    private String addToCartYoy;

    @Schema(description = "类目搜索指数")
    private Long categorySearchIndex;

    @Schema(description = "类目搜索指数同比(年)")
    @Size(max=10, message="类目搜索指数同比(年)长度不能超过10个字符")
    private String categorySearchIndexYoy;

    @Schema(description = "类目点击指数")
    private Long categoryClickIndex;

    @Schema(description = "类目点击指数同比(年)")
    @Size(max=10, message="类目点击指数同比(年)长度不能超过10个字符")
    private String categoryClickIndexYoy;

    @Schema(description = "搜索点击率")
    private BigDecimal clickRate;

    @Schema(description = "搜索点击率同比(年)")
    @Size(max=10, message="搜索点击率同比(年)长度不能超过10个字符")
    private String clickRateYoy;

    @Schema(description = "成交金额指数")
    private Long transactionAmountIndex;

    @Schema(description = "成交金额指数同比(年)")
    @Size(max=10, message="成交金额指数同比(年)长度不能超过10个字符")
    private String transactionAmountIndexYoy;

    @Schema(description = "成交件数指数")
    private Long transactionVolumeIndex;

    @Schema(description = "成交件数指数同比(年)")
    @Size(max=10, message="成交件数指数同比(年)长度不能超过10个字符")
    private String transactionVolumeIndexYoy;

    @Schema(description = "成交转化率")
    private BigDecimal conversionRate;

    @Schema(description = "成交转化率同比(年)")
    @Size(max=10, message="成交转化率同比(年)长度不能超过10个字符")
    private String conversionRateYoy;

    @Schema(description = "成交客单价")
    private BigDecimal customerPrice;

    @Schema(description = "成交客单价同比(年)")
    @Size(max=10, message="成交客单价同比(年)长度不能超过10个字符")
    private String customerPriceYoy;

    @Schema(description = "品牌数")
    private Integer brandCount;

    @Schema(description = "品牌数同比(年)")
    @Size(max=10, message="品牌数同比(年)长度不能超过10个字符")
    private String brandCountYoy;

    @Schema(description = "被访问品牌数")
    private Integer visitedBrandCount;

    @Schema(description = "被访问品牌数同比(年)")
    @Size(max=10, message="被访问品牌数同比(年)长度不能超过10个字符")
    private String visitedBrandCountYoy;

    @Schema(description = "动销品牌数")
    private Integer activeBrandCount;

    @Schema(description = "动销品牌数同比(年)")
    @Size(max=10, message="动销品牌数同比(年)长度不能超过10个字符")
    private String activeBrandCountYoy;

    @Schema(description = "店铺数")
    private Integer storeCount;

    @Schema(description = "店铺数同比(年)")
    @Size(max=10, message="店铺数同比(年)长度不能超过10个字符")
    private String storeCountYoy;

    @Schema(description = "被访问店铺数")
    private Integer visitedStoreCount;

    @Schema(description = "被访问店铺数同比(年)")
    @Size(max=10, message="被访问店铺数同比(年)长度不能超过10个字符")
    private String visitedStoreCountYoy;

    @Schema(description = "动销店铺数")
    private Integer activeStoreCount;

    @Schema(description = "动销店铺数同比(年)")
    @Size(max=10, message="动销店铺数同比(年)长度不能超过10个字符")
    private String activeStoreCountYoy;

    @Schema(description = "被访问商品数")
    private Integer visitedProductCount;

    @Schema(description = "被访问商品数同比(年)")
    @Size(max=10, message="被访问商品数同比(年)长度不能超过10个字符")
    private String visitedProductCountYoy;

    @Schema(description = "动销商品数")
    private Integer activeProductCount;

    @Schema(description = "动销商品数同比(年)")
    @Size(max=10, message="动销商品数同比(年)长度不能超过10个字符")
    private String activeProductCountYoy;


}
